Precision e recall sono insensibili al ranking dei documenti
Il numero totale dei documenti rilevanti molto spesso non è conosciuto, si pensi ad esempio ad una query sul web, pertanto per calcolare la recall si può prendere un sample del dataset oppure fare una stima
Vi è la necessità di utilizzare risorse umane per l’assessment dei documenti rilevanti
8.1 F1-Measure
Misura che prende in considerazione sia la recall che la precision
Media armonica di recall e precision: F = \dfrac{2PR}{P +R} = \dfrac{2}{\frac{1}{R} + \frac{1}{P}}
Rispetto alla media aritmetica, sia recall che precision dovranno essere alte per avere un F1 alto
Con la media aritmetica il sistema sarebbe molto penalizzato se uno dei due valori è molto basso
Variante F_{\beta}: si enfatizza la precision rispetto alla recall con un peso: F_{\beta} = \dfrac{(1 + \beta^2) \cdot PR}{\beta^2 P + R} = \dfrac{(1 + \beta^2)}{\frac{\beta^2}{R} + \frac{1}{P}}
\beta = 1: F_{\beta} = F
\beta > 1: più peso alla recall
\beta < 1: più peso alla precision
\beta = 0: F_{\beta} = P
8.2 Precision-Recall curve
Una metrica che tenga conto di precision e recall al variare del numero di documenti analizzati in cima ai documenti restituiti (quindi al variare del comportamento) è chiamata precision recall curve.
Una precision-recall curve per una singola query, però, non è una misura davvero indicativa delle performance del sistema: sarebbe necessario fare una media che consideri un numero rappresentativo di query.
Problema: ogni query ha un numero di documenti rilevanti differenti, pertanto la coordinata che rappresenta il recall avrà tanti valori diversi, non potremmo quindi confrontare le query
Soluzione: interpolazione
Interpoliamo ogni valore di precision per ogni livello di recall standard:
La precision interpolata al j-esimo livello standard di recall è la massima precision calcolata a livello di recall maggiore di r_j: P(r_j) = \displaystyle \max_{\forall R | r \geq r_j} P(r)
Si considereranno per i grafici solo i valori di precision e recall relativi ai documenti rilevanti, presi man mano che si scorre la ranked list restituita dal sistema per la query
Osservazioni
Se recall non diventa 1, a un certo punto il grafico calerà a picco a 0, altrimenti non toccherà mai lo 0
Per confrontare più sistemi, andremo a calcolare l’area sottesa dalla curva interpolata (integrale)
Questo può essere difficile, dato che dovremmo conoscere la funzione che rappresenta quella curva
Comunque, se un sistema sovrasta sempre gli altri sistemi della comparison, allora già graficamente abbiamo la certezza che quel sistema rende meglio nel set di sistemi valutati
8.3 Precision@k e Precision@R
Per quanto utili possano risultare i grafici, spesso è preferibile utilizzare delle metriche quantificabili.
Precision@k: precision calcolata per i primi k risultati: P@k = \dfrac{r}{k}, con r il numero di documenti rilevanti trovati e k il numero di documenti scelto.
Questa metrica può essere buona per un ambiente web, ma la scelta arbitraria di k può creare problemi, immaginando un k = 10 in una query con 5 documenti rilevanti, P@10 non potrà mai avere 1 di precision anche quando il sistema è perfetto, cioè quando ritorna tutti e 5 i documenti nei primi 10 risultati
R-Precision: Precision@#rel_doc
In sostanza la lista dei risultati viene tagliata al numero di documenti rilevanti così da garantire al sistema di poter raggiungere una precision del 100%
8.4 Average Precision
Media delle precision nelle posizioni dei documenti rilevanti, rappresenta l’area sottesa dalla curva di precision-recall di una query: AP = \dfrac{1}{m} \displaystyle \sum_{k = 1}^{m} Precision(p = k), dove m è il numero totale di documenti rilevanti nella collezione per la query considerata.
Se ci sono documenti rilevanti non ritrovati, si somma uno 0 per ognuno di essi, in modo da poter fare una precisa media aritmetica.
8.5 MAP (Mean Average Precision)
Media aritmetica dell’AP calcolato per ogni query: MAP = \dfrac{1}{n} \displaystyle \sum_{j = 1}^{n} \dfrac{1}{m_j} \sum_{k = 1}^{m_j} Precision(p = k), dove n è il numero delle query e m_j è il numero di documenti rilevanti per la j-esima query
Stessa problema della media aritmetica incontrato per la F1
Soluzione: GMAP (Geometric MAP), utilizzo la media geometrica che annacqua query un pò scarse e enfatizza query su cui il sistema è forte): GMAP = \sqrt[n]{\displaystyle \prod_n AP_n}, dove n è il numero delle query